from django.shortcuts import render
from django.http import JsonResponse
from datetime import datetime
from django.contrib.auth.decorators import login_required


def home_view(request):
    return render(request, 'home/home.html')


def discover_view(request):
    return render(request, 'home/discover.html')


def hot_view(request):
    """热门视频页面（模板渲染）。"""
    return render(request, 'home/hot.html')


@login_required(login_url='login')
def following_view(request):
    """
    关注页：展示用户已关注创作者发布的视频流（样式与首页一致）。

    说明：当前为占位实现，前端样式统一复用 home.css/home.js；
    后端数据接入可后续接 mock 后端或真实分布式数据库查询。
    """
    return render(request, 'home/following.html')


def api_hot_videos(request):
    """
    热门视频数据接口（占位）。

    预期由后端对分布式数据库执行查询并返回热门视频的 URL 列表。
    这里先返回 mock 数据，便于前端联调。

    参考的目标 SQL（依据设计文档）：

    -- 以热度分综合排序（示例：观看权重 0.6 + 点赞权重 0.3 + 评论权重 0.1），最近7天
    SELECT v.video_id, v.video_url, v.title, v.view_count, v.like_count, v.comment_count
    FROM video v
    WHERE v.upload_time >= datetime('now','-7 day')
    ORDER BY (v.view_count*0.6 + v.like_count*0.3 + v.comment_count*0.1) DESC
    LIMIT 20;

    也可结合行为日志 action_log 进行时间衰减与更精细的权重计算。
    """
    items = [
        {
            "url": "https://samplelib.com/lib/preview/mp4/sample-5s.mp4",
            "title": "热度TOP 1",
            "view_count": 128000,
            "like_count": 8200,
        },
        {
            "url": "https://samplelib.com/lib/preview/mp4/sample-10s.mp4",
            "title": "热度TOP 2",
            "view_count": 96500,
            "like_count": 6100,
        },
        {
            "url": "https://samplelib.com/lib/preview/mp4/sample-15s.mp4",
            "title": "热度TOP 3",
            "view_count": 73200,
            "like_count": 4300,
        },
    ]
    return JsonResponse({"items": items, "ts": datetime.utcnow().isoformat() + "Z"})
